package demo1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Demo {
    public static void main(String[] args) throws Exception {
        /*
          1.硬编码模式
           优点:效率最高 简单明了
           缺点:代码写死 不利于后期维护
         */
        Person person=new Person();
        person.sayHello();

        /*
          2.反射机制
           优点:灵活 利于扩展
           缺点:效率差 编写大量反射代码
         */
        Class cls=Class.forName("demo1.Person");
        Person person1=(Person) cls.newInstance();
        person1.sayHello();

        /*
          3.Spring
           优点:灵活 利于扩展 并且容器提供了很多便捷的操作
           缺点:底层仍然是反射机制 但是做了优化
         */
        AnnotationConfigApplicationContext context
                =new AnnotationConfigApplicationContext("demo1");
        Person person2=context.getBean(Person.class);
        person2.sayHello();

    }
}
